﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace DesktopDOHS.appData
{
    public class Commands
    {
        private static Connect conn = new Connect();

        /// <summary>
        /// Retorna todos os Dados da Tabela escolhida
        /// </summary>
        /// <param name="tabela">Tabela a ser pesquisada</param>
        /// <param name="campo">Nome do campo que difere na Tabela</param>
        /// <returns>Retorna um DataTable com os Dados da Tabela escolhida</returns>
        public static DataTable carregaDados(string tabela, string campo)
        {
            string query = "SELECT Codigo, Data, " + campo +
                " FROM " + tabela +
                " ORDER BY Data, Codigo";
            DataSet ds = conn.seleciona(query);
            return ds.Tables[0];
        }

        /// <summary>
        /// INSERT dados na Tabela escolhida
        /// </summary>
        /// <param name="tabela">Nome da Tabela a inserir dados</param>
        /// <param name="campo">Nome do campo que difere na Tabela</param>
        /// <param name="Codigo">Codigo a ser inserido</param>
        /// <param name="Data">Data a ser inserida</param>
        /// <param name="valorCampo">Valor do campo que difere na Tabela</param>
        public static void insertDados(string tabela, string campo, string Codigo, string Data, string valorCampo)
        {
            string query = "INSERT INTO " + tabela + "(Codigo, Data, " + campo + ") " +
                            "VALUES('" + Codigo + "','" + Data + "','" + valorCampo + "')";
            conn.executa(query);
        }

        /// <summary>
        /// UPDATE dados na Tabela escolhida
        /// </summary>
        /// <param name="tabela">Nome da Tabela a fazer o UPDATE</param>
        /// <param name="campo">Nome do campo que difere na Tabela</param>
        /// <param name="oldCodigo">Antigo Codigo do registro a ser alterado</param>
        /// <param name="oldData">Antiga Data do registro a ser alterado</param>
        /// <param name="Codigo">Novo Codigo a ser alterado</param>
        /// <param name="Data">Nova Data a ser alterada</param>
        /// <param name="valorCampo">Novo valor do campo que difere na Tabela</param>
        public static void updateDados(string tabela, string campo, string oldCodigo, string oldData, string Codigo, string Data, string valorCampo)
        {
            string query = "UPDATE " + tabela + " SET Codigo = '" + Codigo +
                            "', Data = '" + Data + "', " + campo + " = '" + valorCampo +
                            "' WHERE Codigo = '" + oldCodigo + "' AND Data = '" + oldData + "'";
            conn.executa(query);
        }
        /// <summary>
        /// DELETE na Tabela escolhida
        /// </summary>
        /// <param name="tabela">Nome da Tabela escolhida</param>
        /// <param name="Codigo">Codigo do registro a ser apagado</param>
        /// <param name="Data">Data do registro a ser apagado</param>
        public static void deleteDados(string tabela, string Codigo, string Data)
        {
            string query = "DELETE FROM " + tabela +
                " WHERE Codigo = '" + Codigo +"' AND Data = '" + Data + "'";
            conn.executa(query);
        }

        /// <summary>
        /// Busca um registro na Tabela escolhida
        /// </summary>
        /// <param name="tabela">Nome da Tabela a buscar o registro</param>
        /// <param name="campo">Nome do campo que difere na Tabela</param>
        /// <param name="Codigo">Codigo do registro a ser buscado</param>
        /// <param name="Data">Data do registro a ser buscado</param>
        /// <returns>Retorna um DataTable com o registro a ser pesquisado</returns>
        public static DataTable buscaRegistro(string tabela, string campo, string Codigo, string Data)
        {
            string query = "SELECT Codigo, Data, " + campo +
                    " FROM " + tabela +
                    " WHERE Codigo = '" + Codigo + "' AND Data = '" + Data + "'";
            DataSet ds = conn.seleciona(query);
            return ds.Tables[0];
        }

    }
}
